<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 对于Promise对象的理解：
    // Promise对象是一个构造函数
    // 作用：是ES6中提出的异步解决方案，使用一个Promsie对象可以保存异步操作的结果。

    // 异步操作结果：（状态 和 结果数据）
    // 状态：
    // 1.pending 等待状态
    // 2.fulfilled 成功状态  已完成的状态
    // 3.rejected 失败状态
    // 状态转换：
    // pending ---> fulfilled
    // pending ---> rejected
    // 状态转换不能逆向转换 只能改变一次

    // 创建Promise对象
    const promise = new Promise((resolve, reject) => {
        resolve('成功') // pending ---> fulfilled
        reject('失败') // pending ---> rejected
    })
    console.log(promise); // fulfilled  结果数据：'成功'


    const promise2 = new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('成功')
        }, 1000)
        reject('失败')
    })

    // promise2 状态转换： pending ---> rejected

    const promise3 = new Promise((resolve, reject) => {

    })
    console.log(promise3);

    // promise3 状态： pending
    var fn;
    const promise4 = new Promise((resolve, reject) => {
        fn = resolve
        reject('失败')
        // setTimeout(() => {
        //     reject('成功')
        // }, 1000)
    })
    fn()
    console.log('promise4', promise4);
    // promise4 状态： fulfilled

</script>

</html>